#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//enum s
//{
//	Monday,
//	Twoday,
//	Wenday = 3,
//	Thurday,
//	Friday = 100,
//	Satuday,
//	Sunday = Friday + 10000
//
//};
//int main()
//{
//	printf("%d ", Monday);
//	printf("%d ", Twoday);
//	printf("%d ", Wenday);
//	printf("%d ", Thurday);
//	printf("%d ", Friday);
//	printf("%d ", Satuday);
//	printf("%d ", Sunday);
//	char a = Friday;
//	return 0;
//}
//union ss
//{
//	int i;
//	char m;
//	int arr[];
//};
//struct sss
//{
//	int j;
//	int arr[];
//};
//int main()
//{
//	//union ss s = { 0 };
//	 struct sss* ss =(struct sss *) malloc(sizeof(struct sss) + sizeof(int) * 5);
//	 int i = 0;
//	 if (ss == NULL)
//	 {
//		 perror("ss");
//		 return 1;
//	 }
//	 for (i = 0;i < 5;i++)
//	 {
//		 ss->arr[i] = i;
//	 }
//	printf("%zd", sizeof(ss));
//	for (i = 0; i < 5;i++)
//	{
//		printf("%d ",ss->arr[i]);
//	}
//	struct sss* s = (struct sss *)realloc(ss, sizeof(struct sss) + sizeof(int) * 10);
//	if (s == NULL)
//	{
//		perror("s");
//		return 1;
//	}
//	ss = s;
//	s = NULL;
//	for (i = 0;i < 9;i++)
//	{
//		ss->arr[i] = i;
//	}
//	for (i = 0; i < 9;i++)
//	{
//		printf("%d ", ss->arr[i]);
//	}
//	free(ss);
//	return 0;
//}
struct ss
{
	int i;
	int arr[];
};
int main()
{
	struct ss* s = (struct ss*)malloc(sizeof(struct ss)+sizeof(int) * 5);
	if (s ==  NULL)
	{
		perror("s");
		return 1;
	}
	//printf("%zd", sizeof(struct ss));
	else
	{
		int i = 0;
		for (i = 0;i < 5;i++)
		{
			s->arr[i] = i + 1;
		}
		for (i = 0; i < 5;i++)
		{
			printf("%d ", s->arr[i]);
		}
		struct ss* ptr = (struct ss*)realloc(s, sizeof(struct ss) + sizeof(int) * 10);
		if (ptr == NULL)
		{
			perror("s");
			return 1;
		}
		s = ptr;
		for (int i = 0; i < 10;i++)
		{
			s->arr[i] = i + 1;
		}
		for (i = 0; i < 10;i++)
		{
			printf("%d ", s->arr[i]);
		}
		free(s);

	}
	return 0;
}